package com.xiaoq.sites.repository;

import java.util.List;

import com.xiaoq.sites.entity.SitesPointEntity;
import com.xiaoq.vo.PagingVo;

public interface ISitesPointRepository {
	
	public boolean findPointName(String pointName,String sitesId);
	
	public SitesPointEntity findById(String id);
	
	/**
	 * 根据景区ID查询所有景点
	 * @param sitesId
	 * @return
	 */
	public List<SitesPointEntity> findBySitesId(String sitesId);
	
	/**
	 * 根据景区ID查询必玩景点
	 * @param sitesId
	 * @return
	 */
	public List<SitesPointEntity> findMPlayPointBySitesId(String sitesId);
	
	/**
	 * 根据路线ID查询该路线经过的所有景点
	 * @param routeId
	 * @return
	 */
	public List<SitesPointEntity> findByRouteId(String routeId);
	
	/**
	 * 根据一组景点ID，查询景点列表
	 * @param sitesPointIdList
	 * @return
	 */
	public List<SitesPointEntity> findBySitesPointIdList(List<String> sitesPointIdList);
	
	public SitesPointEntity findSitesPointId(String sitesPointId);
	
	public boolean addSitesPoint(SitesPointEntity sitesPointEntity);
	/**
	 * 根据景点id删除一个景点
	 * @param pointId
	 * @return
	 */
	public boolean delSitesPoints(String pointId);
	
	public boolean updateSitesPoint(SitesPointEntity sitesPoint);
	
	/**
	 * 按景点名称模糊查询景点
	 * @param pointName
	 * @return
	 */
	public List<SitesPointEntity> findByPointNameVag(String pointName,String sitesId);
	
	/**
	 * 按景点名称去查询一个景点
	 * @param pointName
	 * @return
	 */
	public SitesPointEntity findByPointName(String pointName);

	/**
	 * 根据经纬度查询附近多少米范围内的景点
	 * @param latitude 经度
	 * @param longitude 纬度
	 * @param nearM 附近多少米
	 * @param pagingVo 分页参数
	 * @return
	 */
	List<SitesPointEntity> getSitesPointByPoint(double latitude, double longitude, long nearM, PagingVo pagingVo);
}
